1
เครื่องมือวัดประสิทธิภาพ: ทำไมการเขียนแบบโอ (Big O) จึงกลายเป็นภาษาสากลของนักพัฒนาโปรแกรม?
AI028Lesson 2
00:00

ความซับซ้อนด้านเวลา (Time Complexity) ไม่ใช่การวัดระยะเวลาทำงานในหน่วยวินาทีอย่างแน่นอน แต่เป็นฟังก์ชันทางคณิตศาสตร์ที่อธิบายว่าเวลาในการทำงานของอัลกอริทึมจะเพิ่มขึ้นอย่างไรเมื่อขนาดปัญหา $n$ เพิ่มขึ้น มันตั้งอยู่บนหลักการสำคัญว่า 'การวิเคราะห์อัลกอริทึมเป็นการวัดผลที่ไม่ขึ้นกับการประยุกต์ใช้งาน'

ขนาด $n$เวลา $T(n)$O(n²)O(n)O(log n)O(1)

เหตุผลที่มันเป็นภาษาสากลคืออะไร?

  • การวัดการเปลี่ยนแปลงเชิงปริมาณการเขียนแบบโอ (Big O) ละเลยพจน์ระดับต่ำและค่าคงที่ โฟกัสเฉพาะระดับจำนวน (Order of Magnitude)
  • ความแน่นอนของการวัดนักพัฒนาโดยทั่วไปใช้กรณีแย่ที่สุด (Worst Case) เป็นเกณฑ์มาตรฐาน เพื่อให้มั่นใจในระดับประสิทธิภาพขั้นต่ำ
  • การตัดสินใจข้ามสภาพแวดล้อมไม่ว่าจะอยู่บนคอมพิวเตอร์ซูเปอร์หรือชิปฝังตัว การปรับปรุงจาก $O(n^2)$ เป็น $O(n \log n)$ ก็ให้ผลประโยชน์ที่สำคัญอย่างแท้จริง
วิธีการนับ (Counting)
นับจำนวนครั้งที่ตัวอักษรแต่ละตัวปรากฏในสองสายอักขระ หากรายการนับตัวอักษรเหมือนกัน สายอักขระทั้งสองต้องเป็นคำสลับลำดับกัน วิธีนี้ทำให้ได้ประสิทธิภาพ วิธีนับ: $O(n)$ ที่มีประสิทธิภาพสูง